#

| Chapter 11 |

# 11. The Lessons of History

Contents:
The Lessons of History
History in a Nutshell
My Favorite Is !$
My Favorite Is !:n*
My Favorite Is ^^
Using !$ for Safety with Wildcards
History Substitutions
Repeating a Cycle of Commands
Running a Series of Commands on a File
Check Your History First with :p
Picking Up Where You Left Off
Pass History to Another Shell
Shell Command-Line Editing
More Ways to Do Interactive History Editing
Changing C Shell History Characters with histchars
Instead of Changing History Characters

## 11.1 The Lessons of History

It has been said that "the only thing we learn from history is that people don't learn from history."

Fortunately, the original maxim that "history repeats itself" is more appropriate to UNIX.

Most shells include a powerful history mechanism that lets you recall and repeat past commands, potentially editing them before execution. This can be a godsend, especially when typing a long or complex command.

All that is needed to set C shell history in motion is a command like this in your .cshrc file:

>     set history=n

where `n` is the number of past commands that you want to save. In ksh and bash, the variable is HISTSIZE, and it's already set for you; the default values are 128 and 500, respectively.

The history command lists the saved commands, each with an identifying number. [In csh and bash, you can show just the last few commands by typing a number, too. For instance, history 20 shows your last 20 commands. -JP ] (It's also possible to configure the shells to print the history number of each command as part of your prompt (7.2).)

In csh and bash, you can repeat a past command by typing its number (or its name) preceded by an exclamation point (`!`). You can also select only parts of the command to be repeated, and use various editing operators to modify it. Articles 11.7 and 9.6 give quick tutorial summaries of some of the wonderful things you can do. Most of the rest of the chapter gives a miscellany of tips for using and abusing the shells' history mechanism.

Most shells - except the original Bourne and C shells - also have interactive command-line editing (11.13). [Interactive editing might seem to be better than typing `!vi` or `lpr !$`. If you learn both systems, though, you'll find plenty of cases where the `!` system is faster and more useful than interactive editing. -JP]

- TOR

10.10 Simulated Bourne Shell Functions and Aliases |  | 11.2 History in a Nutshell